package com.ruoyi.hr.service;

import com.ruoyi.hr.domain.Authority;
import com.ruoyi.hr.domain.Companys;
import com.ruoyi.hr.domain.DictionaryTable;
import com.ruoyi.system.domain.SysUser;


import java.util.List;
import java.util.Map;

public interface CompanysService {


    public List<String> findSubsidiaryID(List<String> AllID);


    /**
     * 获取分页公司信息
     *
     * @return
     */
    public List<Companys> findPage(int PageNum, int PageSize, Companys companys, List<Authority> authorities);

    /**
     * 直接获取权限所在的公司
     */
    public List<Companys> findAllByAuthority(Companys companys,Authority authority);


    /**
     * 获取公司总数
     *
     * @return
     */
    public int findCount(Companys companys, List<Authority> authorities);

    /**
     * 获取所有公司信息
     *
     * @return
     */
    public List<Companys> findAllCompanys(Long compID);


    /**
     * 获取所有公司的树
     *
     * @return
     */
    public List<Map<String, Object>> findAllTree(List<String> AllID);


    /**
     * 根据公司ID获取公司信息
     *
     * @return
     */
    public Companys findCompanys(Long compID);

    /**
     * 保存公司信息
     *
     * @param companys 公司信息
     * @return 结果
     */
    public int updateCompany(Companys companys);


    /**
     * 新增公司信息
     *
     * @param companys 公司信息
     * @return 结果
     */
    public int insertCompany(Companys companys);


    /**
     * 根据部门取出这个部门所在的公司信息
     *
     * @param depID 部门ID信息
     * @return 结果
     */
    public Companys findDepIDComp(String depID);


    /**
     * 获取未注销的公司数量
     *
     * @return 数量
     */
    public int findCompCount();

    /**
     * 获取所有集团名称
     */
    List<DictionaryTable> findCompGroup();

    /**
     * 获取所有公司级别
     */
    List<DictionaryTable> findCompGrade();

    /**
     * 获取导出数据
     *
     * @param companys
     * @param authorities
     * @return
     */
    public List<Companys> findExport(Companys companys, List<Authority> authorities);

}
